package br.com.gaspar.mb;

import gov.sefaz.utils.exception.BaseException;
import gov.sefaz.visao.jsf.ManagedBeanBase;

import java.util.Date;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;
import javax.inject.Named;

import br.com.gaspar.bo.iface.IGasparBO;
import br.com.gaspar.bo.iface.IPagamentoCompraBO;
import br.com.gaspar.entidade.Compra;
import br.com.gaspar.entidade.PagamentoCompra;

@Named("PagamentoCompraMB")
@RequestScoped
public class PagamentoCompraMB extends ManagedBeanBase<PagamentoCompra> {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@EJB
	private IPagamentoCompraBO bo;
	
	@EJB
	private IGasparBO<Compra> compraBO;
	
	@Override
	protected IPagamentoCompraBO getFachada() {
		return bo;
	}

	@PostConstruct
	@Override
	public void iniciar() {
		entidade = new PagamentoCompra();
		entidade.setData(new Date());
		super.iniciar();
	}
	
	public void lancar(ActionEvent event){  
		   UIParameter parameter = (UIParameter) event.getComponent().findComponent("compraId");  
		   Long idCompra = Long.parseLong( parameter.getValue().toString());
		   try {
			Compra compra = compraBO.buscarPorId(Compra.class, idCompra);
			getEntidade().setCompra(compra);
			bo.gravar(getEntidade());
		} catch (BaseException e) {
			adicionarMensagem(e.getDescricao(), FacesMessage.SEVERITY_ERROR);
		}
	}
}
